<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">

<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link rel="icon" href="./images/active.ico" type="image/x-icon" />
<link rel="shortcut icon" href="./images/active.ico" />

<title>BES, Battle Encoder Shirase 1.2.2: Controls Per-Process CPU Usage</title>


<style type="text/css">
html, body {
	background: #d8e8e8;
}
body {
	padding: 0px;
	margin: 3em 5% 50% 5% ;
}
h1 {
	font-family: Georgia, serif;
	font-style: italic;
	color: #060;
	margin-top: 1.5em;
}
h1 em { color: red; }
h2 {
	font-family: Verdana, sans-serif;
	color: #600;
	margin: 1.25em;
	size: 100%;
}
p, ul, ol, dl {
	font-family: Verdana, Tahoma, "MS UI Gothic", sans-serif;
	margin: 1em 5%;
	text-indent: 1em;
	line-height: 1.666667;
}
pre {
	margin: 1em 5%;
	background: #e8f8f8;
	padding: 1em;
	color: black;
	font-size: 125%;
	border: maroon dotted 2px;
}

dt {
	font-weight: bold;
	color: green;
}

li { 
	margin-top: 1.5em;
}
h3 {
	font-family: Verdana, sans-serif;
	border-style: dotted;
	border-width: 4px;
	font-weight: bold;
	border-color: #ccc;
	margin: 5em 1em 1em 1em;
	padding: 0.5em 1em;
	background: #38a;
	color: #ffc;
}
h4{
	color: #040;
	margin: 3em 5% 1em 5%;
	font-family: Verdana, Tahoma, sans-serif;
	font-weight: bold;
	border-width: 0px 0px 1px 0px;
	padding: 0.5em 1em;
	border-style: dashed;
	border-color: #080;
	font-style: normal;
}
h5 {
	margin: 1em 10%;
	font-size: medium;
}
kbd {
	font-family: "Courier New", monospace;
	color: #fff;
	background: #000;
	padding: 2px;
}
address {
	font: italic 19px "Times New Roman", serif;
	text-align: right;
	margin: 10em 2em;
}
img {
	vertical-align: middle;
}
form {
	text-align: right;
}

fieldset {
	border: none;
	font-family: 'Palatino Linotype',Tahoma, sans-serif;
	color: maroon;
}

</style>


</head>

<body>

<h1>
<img alt="" src="./images/bes_logo.png" width="79" height="78" style="float:left;margin: 0px 1em;"/>
<em>BES</em> – Battle Encoder Shirase 1.2.2<br />
 for Windows 2000/XP<br style="clear:both"/>
</h1>

<p>
<strong>
Free software that controls per-process CPU usage.
“Active” software CPU cooler.
</strong>
</p>

<p>
<em>(Apparently, the non‐Unicode version in the same zip works on <strong>Windows 98/me</strong> too.)</em>
</p>
<form action="https://www.paypal.com/cgi-bin/webscr" method="post">
<fieldset>
<em>
If you like this software, treat us to a cup of coffee<br /> by making a donation here.<br />
</em>

<input type="hidden" name="cmd" value="_s-xclick" />
<input type="image" src="https://www.paypal.com/en_US/i/btn/x-click-but04.gif" name="submit" alt="Make payments with PayPal - it's fast, free and secure!" />
<img alt="" src="https://www.paypal.com/en_US/i/scr/pixel.gif" width="1" height="1" />
<input type="hidden" name="encrypted" value="-----BEGIN PKCS7-----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-----END PKCS7-----
" />


</fieldset>
</form>

<h2>
Version 1.2.2 – December 12, 2006<br />
</h2>

<p style="font-size:80%; text-align: right;">
<img alt="" src="./images/fr.png" width="33" height="20" /> <a href="http://www.boincfrance.org/wakka.php?wiki=LimiteurCpu" xml:lang="fr" hreflang="fr">BES : un limiteur de charge CPU pour <br />quand   il fait trop chaud pour travailler …</a>
</p>

<ol>
<li><a href="#intro">Introduction</a></li>
<li><strong><a href="#download">Download</a></strong></li>
<li><a href="#usage">How to Use</a></li>
<li><a href="#others">Other Menu Items</a></li>
<li><a href="#commandline">Command Line</a></li>
<li><a href="#messages">Output Messages</a></li>
</ol>


<h3 id="intro">Introduction</h3>

<p>
<em>(You can check the most up-to-date documents online: <a href="http://mion.faireal.net/BES/">http://mion.faireal.net/BES/</a>)</em>
</p>


<p>
BES is a small tool that <strong>throttles the CPU usage for the process you “target”</strong>:
for instance, you can limit the CPU usage of a process which would use CPU 100%, down to 50% (or any percentage you’d like).
With this, you can use other programs comfortably while doing something CPU-intensive in the background.
</p>
<p>
By limiting the CPU load, you can also <strong>cool down your CPU immediately</strong> when it happens to get too hot.
It’s an “active” software CPU cooler.
Conventional soft-coolers save CPU energy by making CPU sleep when it is idle.
They passively wait until CPU gets idle.
BES is more aggressive:
it cools CPU by making the “heating” process slow down,
i.e. periodically forcing CPU to be idle for a short time. (But you should install a better hardware cooler
 if you often need to use BES <em>for this purpose</em>. Active soft-cooling might be an interesting hack,
  but it's just a workaround after all. On the other hand, if your application uses CPU 100% <em>meaninglessly</em>,
  let BES do the job!)
</p>

<p>
Furthermore, BES can <strong>hide any windows you don’t want to be seen</strong> for some reason, without killing the process,
 and restore the hidden windows again anytime you like.<br />
</p>

<p>
BES is <strong>GPL’ed free software</strong>, distributed with (real messy) source code.
</p>

<p>
BES has a multilingual interface: menu language is switchable between Chinese, Japanese, English, etc.
</p>

<p>
When minimized, BES is sent to the system tray,
as a gray icon when idle, a red icon when active:<br />
<img alt="" src="./images/tray1.png" width="280" height="124" /> <img alt="" src="./images/tray2.png" width="280" height="124" />
</p>


<p>
Why is it called BES or “Battle Encoder Shirase”?
 —There’s a long story about this weird name, but basically, it’s a parody of two anime titles: <em><a href="http://www.animenewsnetwork.com/encyclopedia/anime.php?id=3087">Battle Programmer Shirase</a></em>
and <em><a href="http://www.animenewsnetwork.com/encyclopedia/anime.php?id=902">Battle Fairy Yukikaze</a></em>.
“Battle encoder” means a crazy person who doesn’t stop encoding even when 
the CPU reaches a very high temperature. BES helps them to go on by cooling the CPU in a hackish way.
</p>


<h3 id="download">Download</h3>

<p>
<strong><a href="http://mion.faireal.net/bes_1.2.2.zip">Ver. 1.2.2</a> 2006-12-12</strong><br />
An old bug was fixed.
Once you let BES “watch” anything, BES tried to close an already-closed thread-handle
 when exiting. The handle is closed anyway,
 so this is not critical, 
 and probably you didn’t even notice anything,
 but this was an obvious bug.
 Also various small improvements.
</p>

<!--
<p>
<a href="http://mion.faireal.net/bes_1.2.1b.zip">Ver. 1.2.1β</a> 2006-11-21<br />
Beta version: 1.2.1 should have a significantly better response in the default (non real-time) mode,
and control the target process more strictly, especially in the default mode but also in the real-time mode.
In the default mode of the previous version (1.2.0), BES may not be strong enough to keep a very “greedy” target under control,
especially if BES is running in the background while the target is running in the foreground
(though BES 1.2.0 works decently even in such a case, and it works flawlessly if you use the real-time mode).
</p>
<p>
This problem should have been fixed.
1.2.1 also includes several minor fixes.
However, this version is not yet tested well.
</p>
-->
<p>
<a href="http://mion.faireal.net/bes_1.2.zip">Ver. 1.2</a> 2006-10-01<br />
This version has a small bug (See above), but is relatively well-tested.
If 1.2.2 does not work well, you might want to try this old one.
</p>

<pre>
BES.exe /1.2.0 Unicode
MD5=2F927E5BCC8A9ADC2DC957D1C998D3A8
BES.exe / 1.2.1 β Unicode
MD5=12A8B5D4B2918D8A35EEF1983E4BDEBA
BES.exe / 1.2.2 Unicode
MD5=070FA393F92867F8138D96EADA53356C
</pre>

<p>
<a href="http://mion.faireal.net/archive/">Older versions</a>
</p>


<h3 id="usage">How to Use</h3>
<ol>
<li>
Run bes.exe. Click [Target...]<br />

<img alt="" src="./images/bes1.jpg" width="642" height="527" />

</li>
<li>
Select the target process you want to throttle, and click [Limit this].
In this picture, the user is going to target VirtualDubMod.exe.<br />
<img alt="" src="./images/bes2.png" width="634" height="492" /><br />

<strong>NOTE</strong>: 
The limiter activated by [Limit this] will be automatically canceled when the target process is gone (i.e. the target application is closed).
If you would like to throttle its CPU usage even after it is closed and restarted,
use [Limit/Watch]. That tells BES to keep “watching” all the processes,
and “target” the application you specified as soon as BES finds it restarted.
</li>
<li>
Answer the confirmation dialog.<br />
<img alt="" src="./images/bes3.png" width="589" height="364" />


</li>
<li>
This is how BES looks like when it is doing its job.<br />
<img alt="" src="./images/bes4.jpg" width="642" height="527" /><br />

To change how much you limit the time slices given to the target,
click [Control...].

</li>
<li>
This is where you can control the throttle(s). How to use it should be self-explanatory.
<br />
<img alt="" src="./images/bes5.png" width="598" height="488" /><br />

<strong>NOTE</strong>: This percentage is always relative. If the target originally used the CPU 80%,
and if you set limiter −50%, then the CPU load by the target would be 40%.
If the original CPU load increased to 90%, then the result by throttling would be 45%.
You might want to set the maximum CPU load in the absolute percentage (e.g. “make it exactly 40% whenever possible”),
but BES can't do that; because BES is not controlling the CPU directly in low level,
but indirectly limits the “greediness” of the target application (i.e. how often it requests the system to give it a time slice)
by forcing the targeted process to periodically sleep for a very short time.
What you are actually controlling by setting % here is this “periodically how?” part.<br />
(Nevertheless, if you set it −50%, that application's <em>maximum possible CPU usage</em> would be limited to 50% anyway. Only, this doesn't mean that application is guaranteed to use 50% whenever possible. What is guaranteed is, 50% <em>or less</em>.)

</li>
</ol>

<h3 id="others">Other Menu Items</h3>

<h4>“Select Target...” Dialog Box (Process List)</h4>
<p>
<img alt="" src="./images/bes2.png" width="634" height="492" />

</p>
<p>
Limit &amp; Limit/Watch: Already explained.
</p>
<p>
Close: Close this dialog.
</p>
<p>
Refresh: Refresh the list. 
When this dialog is opened, BES will gather the information needed to list up all the processes running.
If you “refresh,” BES do the same thing again.
It’s like a browse’s reload button, and is useful when a new application is started after you open this dialog
(that new application will not be listed until you refresh the list).
</p>
<p>
Hide: Hide all the windows related to the selected process.
The process is not killed. Just related windows will get invisible.
</p>
<p>
Show: Show the windows you hid by “Hide” <strong>if the target process is selected in the list</strong>. (In other words,
you should remember which target you hid. BES actually knows it, but (for security reason) it won’t restore the hidden windows
until you explicitly specify the target process.)
<br />
<strong>NOTE</strong>:
 You can hide a running application, close BES, and restart BES after a long while.
Even if you do that, BES still remembers which windows it hid, and will restore them when you click [Show].
However, if the target ends on its own, BES can’t restore its windows (which is natural).
If you shut down or reboot the system, BES will forget about everything it hid (which makes sense too, as everything ends anyway).
</p>
<p>
Ask/show: Read the above note. Basically BES can choose the windows to restore automatically and properly.
However, when something unexpected happens and things are foobared,
you can manually tell BES which windows (related to the selected process) it should show.
Using this, you could even force a window that is originally hidden to be shown too
(some applications generate unseen windows for various reasons).
</p>
<p>
List All: The process list is usually not complete. System processes that you are not likely to target—or that you can't target,
because of the security restrictions—are not listed by default. [List All] will tell BES to list everything anyway.
</p>
<p>
Unfreeze: This is just for emergency.
I bet this never happens to you, but imagine what would happen if BES crashed
 just after it made the target sleep and not before it reawakened the sleeping baby
 (yes, BES is a tool that periodically makes the target sleep for a very short time).
The target would then freeze.
BES is tested for a long time (from 0.8.x until 1.0 beta 18) and such a thing has never happened even once,
but in theory it could happen (you know anything weird and unexpected could happen on Windows).
Even if that happens, don't panic: restart BES, open this target dialog, go to the listbox and select the target that is frozen.
Then just click [Unfreeze].
 This will reset what is called “suspend count” for each related thread, and unfreeze the application in question. <br />
 <strong>NOTE</strong>: “Unfreeze” doesn’t work if the target freezes because of its own bug and BES is not responsible.
 The only situation “Unfreeze” would work is, when BES crashes itself.
 As you know too well, many applications freezes or crashes on its own, totally unrelated to BES.
</p>
<p>
Friend: When the item selected in the list is something that you are unlikely to target (i.e. unlikely to be CPU-intensive),
you may want to tell BES that it’s CPU-friendly by clicking [Friend].
If you do that, BES recognizes the application in question as friendly, and always put it in the bottom of the list.
(You <em>can</em> do that if you’d like to,
but it is not something you <em>must</em> do to use BES).
</p>
<p>
Unknown: This tells BES to treat the selected item neutrally, not as Foe nor Friend.
Everything is Unknown by default.<br />
<strong>NOTE</strong>: There are a few exceptions, such as VirtaulDub.exe. BES knows VD can be very CPU-intensive,
and always considers it as a foe (you cannot change that, as it is hard-coded).
What is meant by “VD is a foe” here, is “it may make CPU too hot.”
Nothing more than that.
It doesn’t mean VD is a bad program at all.
</p>
<p>
Foe: This tells BES to consider the selected item as Foe, i.e. a greedy application that often uses CPU too much,
which BES often has to “attack.”
Probably you will target the same foe again and again, possibly everyday.
Once you tell BES that it’s a foe,
BES automatically list it at the very top of the target list so that you can select it quickly.
<strong>
If you “attack” a process, that process will be automatically treated as a Foe from then on.
</strong>
</p>

<p>
<strong>NOTE</strong>: The distinction between Friend, Unknown, and Foe is only in the listing order.
BES will “attack” a Foe and a Friend exactly in the same way,
once you order BES to target it.
</p>



<h4>Menu – File</h4>
<p>
Watch: This is like Limit/Watch, but using this you can target the application that is not running.
BES keeps watching it, and if it is started, BES immediately begins to limit its CPU usage.
</p>
<p>
Snap: Make a detailed list of the processes currently running, and save it as a text file.
Might be informative.
</p>

<p>
Exit: End the BES. You can’t exit if one or more limiters of BES are active.
First unlimit all, and you can exit.
</p>
<p>
Exit anyway: End BES anyway even if it’s active.
This is just for emergency, when you must end BES forcefully for some reason.
BES is a babysitter that periodically lets the target sleep,
and it’s a bad idea to tell it to leave without finishing its job properly.
If BES is active, you should first do “Unlimit all.”
(Even if told to exit anyway, BES will still try to finish its job gracefully.)
</p>

<h4>Menu – Do</h4>
<p>
Select target / Unlimit all / Control: Already explained.
</p>
<p>
Unwatch: 
Use this when you want BES to stop watching the application after you tell BES to watch it.
</p>


<h4>Menu – Options</h4>
<p>
Real-time mode: When enabled (ticked), BES demands the system to give it a very high priority
(“real-time” is like telling Windows, “Hey, if I tell you to do anything, you do it right away without any delay.
Don’t let me wait, okay?”).
By doing so, probably BES can start as swiftly as possible even if CPU load is already near 100%.
BES is a special kind of application that tries to control the CPU usage when it is already monopolized.
Yet BES itself needs to get some time slices (i.e. use CPU a little) to do its job.
So giving a special priority to it may make sense.
Furthermore, in the real-time mode, BES will lower the process priority of the target.
When disabled (unchecked), BES will behave modestly,
just like an ordinary application. In reality, this usually doesn’t make any big difference.
</p>
<p>
<em><strong>Changed in 1.2.1</strong>: BES 1.2.1 runs as HIGH_PRIORITY_CLASS in non real-time mode (default).
It was NORMAL_PRIORITY_CLASS in ver. 1.2.0 and before.
In real-time mode, BES gets REALTIME_PRIORITY_CLASS in every version.</em>
</p>

<p>
Write log: Tell BES to write a debug log. Might be informative, but usually not needed,
just causing a waste of resource.
</p>
<p>
Language: Switch the menu language.
</p>


<h4>Menu – Help</h4>
<p>
About / Keyboard shortcuts / Visit homepage / Online help: Self-explanatory.
</p>
<p>
Ukagaka:
 If you have no idea, don’t bother yourself.
 Well, simply put, Ukagaka (→ <a href="http://en.wikipedia.org/wiki/Ukagaka">Wikipedia: Ukagaka</a>) is a kind of desktop mascot system.
 If an Ukagaka or a compatible <em>ghost</em> is running, BES sometimes (but quite rarely) communicates with it.
 For instance, when you open BES’s about box, the <em>ghost</em> may start chatting and
 tell you the version information of BES.
</p>


<h3 id="commandline">Command Line</h3>

<p>
The following command line tells BES to watch target.exe, and—when target.exe starts running—throttle its CPU usage so that
target.exe will be only allowed to use CPU <strong style="white-space:pre;"> (100 − <var>percentage</var>) %</strong> at most:
</p>

<p>
<kbd>"C:\path\to\bes.exe" "D:\path to\target.exe" [<var>percentage</var>] [-&#45;minimize]</kbd>
</p>

<p>
Optionally, you can use an integer between 1 and 99 as <var>percentage</var>.
If <var>percentage</var> is omitted or invalid,
the last known valid percentage for target.exe is automatically used
(if this is the first time to target target.exe, the default reduction 33% will be applied, unless <var>percentage</var> is specified).
Note that, when started from command line, BES will Watch/Limit the target, not just Limit it.
</p>

<p>
The <kbd>-&#45;minimize</kbd> option, available since 1.1β7,
tells BES to start as minimized (sent to the system tray).
</p>

<h3 id="messages">List of Common Output Messages</h3>

<dl>
<dt>Started: OK</dt>
<dd>
Limiter started successfully. (Metaphor: I started babysitting.)
</dd>

<dt>Calm: OK</dt>
<dd>
Limiter is active, and successfully re-scanned the targeted process.
No changes were detected in the thread list. (The baby is in the bed. No problem.)
</dd>

<dt>Target Re-Locked On: OK</dt>
<dd>
One or more threads of the targeted process were gone,
and/or the targeted process created one or more new threads.
BES successfully re-enumerated the thread(s) of the targeted process,
and everything is under control again. (The baby fall from the bed, but I put it back there. Problem solved. )
</dd>

<dt>* Unlimited *</dt>
<dd>
Limiter is deactivated. (I returned the baby to its mom.)
</dd>

<dt>Initial OpenThread failed</dt>
<dd>
Limiter failed to start.
The possible reasons include:
(1) Windows didn’t let BES access to the targeted process
for security restrictions; and (2) the target has been terminated already. (I went to babysitting, but the door is locked and no one answers.)
</dd>

<dt>No threads / Target missing</dt>
<dd>
BES couldn’t find any threads of the targeted process
and/or BES couldn’t find the targeted process anymore.
Most probably the target has been terminated already.
(Uh-oh, the baby is missing.)
</dd>


</dl>

<h3>Troubleshooting</h3>
<p>
If you have any trouble, you might want to contact the author at <img alt="the email address in this picture" src="./images/mirrorfaireal.png" width="140" height="25" />
</p>
<p>
More generally, if you are having a hard time in your life, or if you feel really tired,
 take some rest and watch <em><a href="http://en.wikipedia.org/wiki/Floral_Magician_Mary_Bell">Floral Magician Mary Bell</a></em>,
 especially Episodes 30–50.
</p>

</body>
</html>
